package session;


import java.sql.Time;
import java.util.Date;
import java.util.List;

import entity.Appointment;

/**
 * Dao bean interfejs za entitet termin
 * @author rigo & jung
 *
 */
public interface AppointmentDao extends GenericDao<Appointment, Integer> {
	
	/**
	 * Funkcija za listanje budućih termina
	 * 
	 * @return Vraća listu budućih termina
	 */
	public List<Appointment> listAllAvailable();
	
	/**
	 * Funkcija za proveru da li već postoji termin na zadatom datumu
	 * 
	 * @return true ako postoji, u suprotnom false
	 */
	public Boolean checkAppointment(Date date, Time from, Time to);
	
	/**
	 * Funkcija vraća skup prošlog terimna. Provera prošlosti se oslanja na tekući datum
	 * 
	 * @return lista termina ako postoje, u suprotnom null
	 */
	public List<Appointment> listAllPast();

	/**
	 * Funkcija vraća listu terminova koji su prošli, a josš nisu administrirani, tj.
	 * nije urađena statistika.
	 * 
	 * @return lista terminova, a ako nema, null.
	 */
	public List<Appointment> listAllAdminable();
}
